基于类的视图 您所在的位置:网站首页 django listview的用法 基于类的视图

基于类的视图

#基于类的视图 | 来源: 网络整理| 查看: 265

支持其他 HTTP 方法¶

如果某人想将视图作为 API 来访问图书馆。API 客户端会时不时地连接并下载上次访问过后出版的书籍数据。但如果没有新的书籍出现,那么从数据库中获取书籍,渲染一个完整响应并发送它到客户端的话,这将浪费CPU时间和带宽。当出版最新的书时,它访问 API 最好。

我们需要在 URLconf 中映射 URL 到书籍列表视图:

from django.urls import path from books.views import BookListView urlpatterns = [ path("books/", BookListView.as_view()), ]

还有视图:

from django.http import HttpResponse from django.views.generic import ListView from books.models import Book class BookListView(ListView): model = Book def head(self, *args, **kwargs): last_book = self.get_queryset().latest("publication_date") response = HttpResponse( # RFC 1123 date format. headers={ "Last-Modified": last_book.publication_date.strftime( "%a, %d %b %Y %H:%M:%S GMT" ) }, ) return response

如果从 GET 请求访问视图,将在响应(使用 book_list.html 模板)中返回一个干净的对象列表。但如果客户端发出一个 HEAD 请求,那么将响应一个空 body 和 Last-Modified 头将标识最新书籍的出版时间。基于这些信息,客户端可以选择是否下载一个完整的对象类。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有